package gbase

import "unsafe"

// 零拷贝：string → []byte（只读，不能修改）,1.973 ns/op 对比[]byte(s) 36.7 ns/op 快18.6倍
//"只读，不能修改" 是 unsafe 转换的核心限制：
// ✅ 可以：读取、传给只读函数、立即使用
// ❌ 不能：修改内容、保存引用、传给可能修改的函数
func StringToBytes(s string) []byte {
	return unsafe.Slice(unsafe.StringData(s), len(s))
}

// 零拷贝：[]byte → string（共享底层数组）
func BytesToString(b []byte) string {
	return unsafe.String(unsafe.SliceData(b), len(b))
}
